home *** CD-ROM | disk | FTP | other *** search
/ WINMX Assorted Textfiles / Ebooks.tar / Text - Mathematics - Numerical Mathematics and Computing (F).zip / bisect2.f < prev    next >
Text File  |  2002-06-11  |  1KB  |  54 lines

  1. C
  2. C PAGE 77-78: NUMERICAL MATHEMATICS AND COMPUTING, CHENEY/KINCAID, 1985
  3. C
  4. C FILE: BISECT2.FOR
  5. C
  6. C SECOND VERSION OF BISECTION METHOD (BISECT,F,G)
  7.       EXTERNAL F,G
  8.       DATA AF/0.0/, BF/1.0/, N/50/
  9.       DATA AG/0.5/, BG/2.0/ 
  10.       CALL BISECT(F,AF,BF,N)
  11.       CALL BISECT(G,AG,BG,N)
  12.       STOP
  13.       END 
  14.   
  15.       FUNCTION F(X) 
  16.       F = EXP(X) - 3.0*X
  17.       RETURN
  18.       END 
  19.   
  20.       FUNCTION G(T) 
  21.       G = T**3 - 2.0*SIN(T) 
  22.       RETURN
  23.       END 
  24.   
  25.       SUBROUTINE BISECT(F,A,B,N)  
  26.       FA = F(A) 
  27.       FB = F(B) 
  28.       IF( SIGN(1.0,FA) .EQ. SIGN(1.0,FB) ) THEN 
  29.         PRINT 5,A,B 
  30.         RETURN
  31.       ELSE
  32.         PRINT 3 
  33.         WIDTH = B - A 
  34.         DO 2 I = 1,N
  35.           C = A + (B - A)*0.5 
  36.           FC = F(C) 
  37.           WIDTH = WIDTH/2.0 
  38.           IF( SIGN(1.0,FA) .EQ. SIGN(1.0,FC) ) THEN 
  39.             A = C 
  40.             FA = FC 
  41.           ELSE
  42.             B = C 
  43.             FB = FC 
  44.           ENDIF   
  45.           PRINT 4,I,C,FC,WIDTH
  46.    2    CONTINUE
  47.         RETURN
  48.       ENDIF       
  49.    3  FORMAT(//3X,'STEP',10X,'C',13X,'F(C)',5X,'ERROR',//)
  50.    4  FORMAT(2X,I5,E22.14,2E10.3)     
  51.    5  FORMAT(2X,'FUNCTION HAS SAME SIGN AT',2E22.14)      
  52.       END 
  53.